1. Field of the Invention
This invention relates generally to management software, and more particularly to methods and systems for efficiently interfacing existing management user interfaces with networked computer and computer peripheral storage product lines.
2. Description of the Related Art
In order to stay competitive in today""s business environment, more and more computer systems, storage devices, and peripheral devices are being networked together. As is well known, this degree of networking is needed to provide users with shared access to data that is stored on the various networked devices. Although networking devices provides users with a high degree of flexibility and shared access to data stored in numerous storage devices, these shared devices must be managed to ensure compatibility issues are addressed, and to monitor their operational status.
To accomplish such management tasks, FIG. 1A shows a management system 100 in which various storage devices 104a through 104d are networked to a management console computer 106. In this simplified example, the storage devices 104a-104d are shown directly coupled to a network 102, however, such storage devices are usually coupled to a networked computer via a host adapter. In conventional management systems 100, the management console computer 106 runs a graphical user interface 112, which is engineered to be compatible with the storage devices 104a-104d. As such, the software designer of the graphical user interface 112 is required to integrate the relationships, attributes and methods of each of the storage devices 104a-104d, so that the user of the management console computer 106 will actually be able to communicate (i.e., call) with and invoke the methods that control the storage devices 104a-104d. 
A problem with conventional management systems 100 is that the storage devices 104a-104d are independently developed, tested and connected to a given network, which may produce compatibility issues. To avoid this, the software engineers that design the software (also known here as xe2x80x9cthe managed objectsxe2x80x9d) for the various storage devices have to coordinate the design and interoperability of such storage devices with the software engineer of the graphical user interface 112. Although this works fine, this solution also creates a substantial amount of work for the software engineering team that programs the graphical user interface 112 for the management console computer 106 and slows down the release of new features.
For example, the software features that are integrated into the managed objects that are associated with each of the storage devices 104a-104b are frequently updated, modified or completely replaced with new releases. In some cases, the managed objects are redesigned once or twice a year. Although one or two modifications to the graphical user interface software is not necessarily a large undertaking, a typical network may have up to 20 different types of storage devices, each having its unique managed object. As a result, the software engineering team that programs the graphical user interface 112 may be required to make up to 40 or more code modifications a year to the graphical user interface code, just to keep up with the changes being independently performed by the developers of the managed objects. Many times, the changes may not get implemented into the graphical user interface 112 software due to time constraints and testing requirements, which therefore, may hamper or sever functional communication between the management console computer 106 and the various storage devices.
FIG. 1B is a block diagram illustrating the conventional communication protocols 110 that are exchanged between a group of managed objects 118a-118c and the graphical user interface 112. In one example, assume that the managed object 118c of a given storage device was recently updated without performing the necessary software manipulations to a managed object interface 114 of the graphical user interface 112. When this is the case, if the user of the management console computer 106 desires to print some data form a selected storage device, the managed object 118c will normally pass a data structure 116c to the managed object interface 114.
Unfortunately, a screen manager of the management console computer 106 will not be able to invoke any of the methods of the managed object 118c, because the data structure 116c will typically only contain the necessary data and pointers to methods. However, because the graphical user interface 112 was not updated with the necessary code to handle the data structure pointers of data structure 116c, the management console computer 106 will not be able to adequately manage the appearance, attributes and methods of the new or updated managed object 118c. Even if the data structure 116c contained the necessary icon for the new or updated managed object 118c, when the user of the management console computer 106 clicked on that icon, nothing would happen because the graphical user interface 112 was not previously updated to handle the new managed object 118c. 
In view of the foregoing, what is needed is a method and system for designing managed objects so that they are able to inherently communicate with an existing management graphical user interface without having to custom upgrade the graphical user interface code for each new revision of a managed object.
Broadly speaking, the present invention fills these needs by providing methods, apparatus and systems for integrating custom facets that contain attributes, relationships and methods directly into a managed object to avoid the continual redesign of management graphical user interface software. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a method for making a managed object that is in communication with a management console that is used for storage device management over a network is disclosed. The method includes building an object having a data structure and a method for operating on the data structure. The object represents a set of basic functions of a storage device that is being managed over the network. The method also includes identifying at least one display function of the managed object that will be used to display a view of the managed object through the management console. In this embodiment, the at least one display function includes an attribute, a relationship, and a display method of the managed object. The method further includes appending the at least one display function to the managed object so that the managed object can communicate with the management console through the at least one display function. In a preferred aspect of this embodiment, the method includes generating a graphical user interface that is executed on the management console, and the graphical user interface is configured to communicate with the at least one display function of the managed object.
In another embodiment, an apparatus for managing storage devices over a network is disclosed. The management apparatus includes a management console having a graphical user interface for displaying a physical view and a logical view of a storage device. The management apparatus further includes a managed object of the storage device that is configured to communicate with the graphical user interface of the management console through a facet interface that is wrapped around the managed object. The facet interface is divided into a plurality of specific facets that communicate with the graphical user interface and enable the display of the physical view and the logical view of the storage device. In a further aspect of this embodiment, the graphical user interface includes a plurality of generic views which are configured to communicate with associated ones of the plurality of specific facets of the facet interface.
In yet another embodiment, a system for managing storage means over a network is disclosed. The system includes a management console means that has a graphical user interface for displaying one of a physical view and a logical view of a storage means. The system also includes a managed object means of the storage means that is configured to communicate with the graphical user interface of the management console means through a facet interface means that is wrapped around the managed object means. The facet interface means is divided into a plurality of specific facets that communicate with the graphical user interface and enable the display of either the physical view or the logical view of the storage means. In this embodiment, the graphical user interface of the system also includes a plurality of generic views which are configured to communicate with associated ones of the plurality of specific facets of the facet interface means.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.